package com.jeff.interview;

import java.util.HashMap;

public class Test1 {
    public static void main(String[] args) {
        String str = "abcabcbb";
        System.out.println(longest(str));
    }

    public static int longest(String s) {
        int longest = 0;
        //定义指针
        int left = 0;
        int right =1;
        //定义一个HashMap 用来存储字符串
        HashMap<Character, Integer> map = new HashMap<>();
        map.put(s.charAt(0), 0);//先把第一个字符放进去
        while (right < s.length()) {
            //如果存在就移动左边界
            if (map.containsKey(s.charAt(right))) {
                //先移除左边界在HashMap中的字符
                map.remove(s.charAt(left));
                //左边界向右移动一位
                left++;
            }else {
                //如果不存在就添加到HashMap中
                map.put(s.charAt(right), right);
                //更新最长子串的长度
                longest = Math.max(longest, right - left + 1);
                //右边界向右移动一位
                right++;
            }
        }


        return longest;
    }
}
